Conversation
Spec submodule moved to v0.7.5 (cloudglue-api-spec#99) and SDK regenerated, adding the sync_file_from_url low-level method. Wrapper changes: - New Files.sync_from_url(url, metadata=None, enable_segment_thumbnails=None, wait_until_finish=False, ...) materializes a public URL (direct media, public Dropbox share links, TikTok, Loom) into a file, following the upload() polling pattern. Idempotent server-side. - DataConnectors.sync_file docstring updated for the newly accepted share-link forms (Drive file/open links, Dropbox scl/fi and /s/ file share links via connector OAuth, Zoom rec/share best-effort with recording-detail guidance) and the new error statuses (403/429), routing plain/TikTok/Loom URLs to files.sync_from_url and YouTube to collections.add_media. Unlike cloudglue-js, this SDK has no client-side URL normalization layer; URL classification and rejection happen server-side. Verified live: sync_from_url for direct/TikTok/Loom URLs (fresh ingestion + idempotent re-sync + wait_until_finish round trip), server-side 400s for YouTube/s3/zoom links, connector sync of Drive and Dropbox share links to completion, and Zoom rec/share returning the documented best-effort 404 guidance.
|
Important Review skippedToo many files! This PR contains 275 files, which is 125 over the limit of 150. To get a review, narrow the scope: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (275)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Bumps the SDK to 0.7.12 on spec v0.7.5 (cloudglue-api-spec#99, merged — submodule pinned to
maincommit7ecd8ae) and regenerates the low-level SDK, which adds thesync_file_from_urlmethod for the newPOST /files/syncendpoint. Python counterpart of cloudglue-js#131.New:
Files.sync_from_url()Materializes a publicly accessible URL into a Cloudglue file without a data connector or collection — direct media URLs, public Dropbox share links, TikTok (consumes scrape credits), and Loom share URLs. Idempotent: re-syncing the same URL returns the existing file. Follows the existing
upload()pattern, includingwait_until_finish/poll_interval/timeoutsupport.DataConnectors.sync_filedocstring refreshDocuments the API 0.7.5 URL-handling changes: Drive
file/d/open?id=links, Dropboxscl/fi/sfile share links (resolved via connector OAuth, works for login-gated files), and best-effort Zoomrec/sharelinks (with the reliable recording-detail-link guidance), plus the new 403/429 error statuses. Routes plain/TikTok/Loom URLs tofiles.sync_from_urland YouTube tocollections.add_media.Scope note
Unlike cloudglue-js, this SDK has no client-side URL normalization/routing layer (that's a JS-only feature from cloudglue-js#129) — Loom URLs must be in canonical
www.loom.com/share/<id>form, and unsupported URLs are rejected server-side with the API's specific 400s rather than client-side.Verification
Ran live against the API with a smoke-test script (fresh state — previous test files deleted first):
files.sync_from_url: direct.mp4, TikTok, and Loom URLs all freshly ingested tocompleted; idempotent re-sync returned the same file ID;wait_until_finish=Trueround trip returned a terminal states3://, and Zoomrec/shareURLs all 400 onPOST /files/syncdata_connectors.sync_file: Drive share link and Dropboxscl/fishare link both synced to completion through their connectors; Zoomrec/sharereturned the documented best-effort 404 guidance (stale token)Note
Low Risk
Mostly additive client/SDK and documentation changes; behavior depends on the new API endpoint with no changes to auth or existing upload paths.
Overview
Bumps the Python package to 0.7.12 and regenerates the OpenAPI client for API 0.7.5, including the new
POST /files/syncsurface (SyncFileFromUrlRequest,FilesApi.sync_file_from_url).The high-level client adds
Files.sync_from_url()to ingest public media without a connector or collection (direct http(s) files, Dropbox/TikTok/Loom links), with optional metadata and segment thumbnails and the samewait_until_finishpolling pattern asupload().DataConnectors.sync_filedocstrings are expanded for share-link support, idempotency, which URLs belong on connector sync vsfiles.sync_from_urlvs collections, and additional documented errors (403, 429).Reviewed by Cursor Bugbot for commit c21f4ce. Bugbot is set up for automated code reviews on this repo. Configure here.